home *** CD-ROM | disk | FTP | other *** search
/ All for Cell Phones: Sony Ericsson / Sony-Ericsson 2004.iso / Java / HTetris / htetris.jar / tetris / Digit.class (.txt) next >
Encoding:
Java Class File  |  2002-07-19  |  2.5 KB  |  95 lines

  1. package tetris;
  2.  
  3. import javax.microedition.lcdui.Graphics;
  4.  
  5. class Digit {
  6.    static byte hSpace = 2;
  7.    static byte vSpace = 2;
  8.    static byte[] digits = new byte[]{63, 6, 91, 79, 102, 109, 125, 7, 127, 111};
  9.  
  10.    public Digit() {
  11.    }
  12.  
  13.    static void drawHDigit(Graphics g, int x, int y, int digit, int size) {
  14.       if (digit >= 0 && digit <= 9) {
  15.          for(int i = 0; i < 7; ++i) {
  16.             if ((digits[digit] & 1 << i) != 0) {
  17.                switch (i) {
  18.                   case 0:
  19.                      g.drawLine(x, y, x + size, y);
  20.                      break;
  21.                   case 1:
  22.                      g.drawLine(x + size, y, x + size, y + size);
  23.                      break;
  24.                   case 2:
  25.                      g.drawLine(x + size, y + size, x + size, y + 2 * size);
  26.                      break;
  27.                   case 3:
  28.                      g.drawLine(x, y + 2 * size, x + size, y + 2 * size);
  29.                      break;
  30.                   case 4:
  31.                      g.drawLine(x, y + size, x, y + 2 * size);
  32.                      break;
  33.                   case 5:
  34.                      g.drawLine(x, y, x, y + size);
  35.                      break;
  36.                   case 6:
  37.                      g.drawLine(x, y + size, x + size, y + size);
  38.                }
  39.             }
  40.          }
  41.       }
  42.  
  43.    }
  44.  
  45.    static void drawVDigit(Graphics g, int x, int y, int digit, int size) {
  46.       if (digit >= 0 && digit <= 9) {
  47.          for(int i = 0; i < 7; ++i) {
  48.             if ((digits[digit] & 1 << i) != 0) {
  49.                switch (i) {
  50.                   case 0:
  51.                      g.drawLine(x + 2 * size, y, x + 2 * size, y + size);
  52.                      break;
  53.                   case 1:
  54.                      g.drawLine(x + size, y + size, x + 2 * size, y + size);
  55.                      break;
  56.                   case 2:
  57.                      g.drawLine(x, y + size, x + size, y + size);
  58.                      break;
  59.                   case 3:
  60.                      g.drawLine(x, y, x, y + size);
  61.                      break;
  62.                   case 4:
  63.                      g.drawLine(x, y, x + size, y);
  64.                      break;
  65.                   case 5:
  66.                      g.drawLine(x + size, y, x + 2 * size, y);
  67.                      break;
  68.                   case 6:
  69.                      g.drawLine(x + size, y, x + size, y + size);
  70.                }
  71.             }
  72.          }
  73.       }
  74.  
  75.    }
  76.  
  77.    static void drawHNumber(Graphics g, int x, int y, long number, int size) {
  78.       String s = String.valueOf(number);
  79.  
  80.       for(int i = 0; i < s.length(); ++i) {
  81.          drawHDigit(g, x + i * (size + hSpace), y, Character.digit(s.charAt(i), 10), size);
  82.       }
  83.  
  84.    }
  85.  
  86.    static void drawVNumber(Graphics g, int x, int y, long number, int size) {
  87.       String s = String.valueOf(number);
  88.  
  89.       for(int i = 0; i < s.length(); ++i) {
  90.          drawVDigit(g, x, y + i * (size + vSpace), Character.digit(s.charAt(i), 10), size);
  91.       }
  92.  
  93.    }
  94. }
  95.